﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<list>
#include<stack>
#include<queue>
using namespace std;

//class Date
//{
//public:
//	void Init(int year, int month, int day)
//	{
//		_year = year;
//		_month = month;
//		_day = day;
//	}
//	void Print()
//	{
//		cout << _year << _month << _day<<endl;
//	}
//private:
//	int _year;
//	int _month;
//	int _day;
//};
//
//int main()
//{
//	Date d1;
//	d1.Init(2023, 10, 17);
//	d1.Print();
//
//	Date d2;
//	d2.Init(2023, 10, 18);
//	d2.Print();
//	return 0;
//}

//class Date
//{
//public:
//	Date()
//	{
//
//	}
//	Date(int year,int month,int day)
//	{
//		_year = year;
//		_month = month;
//		_day = day;
//	}
//	void Print()
//	{
//		cout << _year << _month << _day << endl;
//	}
//private:
//	int _year;
//	int _month;
//	int _day;
//};
//
//int main()
//{
//	Date d1;
//	d1.Print();
//
//	Date d2(2023,10,17);
//	d2.Print();
//
//	/*Date d3();
//	d3.Print();*/
//	return 0;
//}

//c/*lass Time
//{
//public:
//	Time()
//	{
//		cout << "Time()" << endl;
//		_hour = 0;
//		_minute = 0;
//		_second = 0;
//	}
//private:
//	int _hour;
//	int _minute;
//	int _second;
//};
//
//class Date
//{
//private:
//	int _year;
//	int _month;
//	int _day;
//
//	Time _t;
//};
//
//int main()
//{
//	Date d;
//	return 0;
//}*/


//int main()
//{
//
//	int array[] = { 1, 2, 3, 4, 0, 5, 6, 7, 8, 9 };
//
//	int n = sizeof(array) / sizeof(int);
//
//	list<int> mylist(array, array + n);
//
//	auto it = mylist.begin();
//
//	while (it != mylist.end())
//
//	{
//
//		if (*it != 0)
//
//			cout << *it << " ";
//
//		else
//
//			it = mylist.erase(it);
//
//		++it;
//
//	}
//
//	return 0;
//
//}

//void main()
//{
//    stack<char> S;
//
//    char x, y;
//
//    x = 'n'; y = 'g';
//
//    S.push(x); S.push('i'); S.push(y);   //n  i  g   
//
//    S.pop(); S.push('r'); S.push('t'); S.push(x);//n i r t n
//
//    S.pop(); S.push('s');//n i r t s
//
//    while (!S.empty())
//
//    {
//
//        x = S.top();//n i r t s n
//
//        S.pop();
//
//        cout << x;
//
//    };
//
//    cout << y;//g
//
//}

int main()
{

    priority_queue<int> a;

    priority_queue<int, vector<int>, greater<int> > c;

    priority_queue<string> b;

    for (int i = 0; i < 5; i++)
    {
        a.push(i);
        c.push(i);
    }

    while (!a.empty())
    {
        cout << a.top() << ' ';
        a.pop();
    }
    cout << endl;

    while (!c.empty())
    {

        cout << c.top() << ' ';

        c.pop();

    }

    cout << endl;

    b.push("abc");

    b.push("abcd");

    b.push("cbd");

    while (!b.empty())

    {

        cout << b.top() << ' ';

        b.pop();

    }

    cout << endl;

    return 0;

}